#ifndef FREECAMERA_H_H_H_H_H_
#define FREECAMERA_H_H_H_H_H_
#include "PrimitiveFeature.h"
#include "App/PropertyStandard.h"
namespace Part
{

	class PartFreeCamera :public Part::Primitive
{
	PROPERTY_HEADER(Part::PartFreeCamera);

public:
	PartFreeCamera(void);
	~PartFreeCamera(void);
	
   App::PropertyFloat angle;
	App::PropertyFloat speed;
	App::PropertyFloat fov;
	App::PropertyFloat nearClip;
	App::PropertyFloat farClip;

	App::DocumentObjectExecReturn * execute(void);

	short mustExecute()const;

	const char* getViewProviderName(void) const {
		return "PartGui::ViewProviderFreeCamera";
	}

protected:
	 void  rotate(float X,float Y,float Z,float Angle,App::DocumentObject *Ref ,CKBOOL KeepChildre);
    void	translateObject(float X,float Y,float Z,DocumentObject* Ref,CKBOOL KeepChildren);
};

}
#endif